/*
 * @Author: your name
 * @Date: 2021-06-15 08:13:16
 * @LastEditTime: 2021-06-15 15:31:28
 * @LastEditors: Please set LastEditors
 * @Description: In User Settings Edit
 * @FilePath: \big_evend_01\assets\js\article\art.cate.js
 */
$(function () {
    // 需求1 初始化文章分类列表
    // 后面还会用到，封装函数
    let layer = layui.layer
    initArtCateList()
    function initArtCateList() {
        axios({
            method: "GET",
            url: '/my/article/cates'
        }).then(res => {
            // console.log(res.data);
            if (res.data.status !== 0) {
                return layer.msg(res.data.message)
            }
            // 成功后渲染
            let arr = []
            let index = 0
            res.data.data.forEach(ele => {
                index++;
                arr.push(`
                    <tr>
                        <td>${index}</td>
                        <td>${ele.name}</td>
                        <td>${ele.alias}</td>
                        <td>
                        <button data-id='${ele.Id}'  class="btn-edit layui-btn layui-btn-xs">编辑</button>
                        <button data-id='${ele.Id}'  class="btn-delete layui-btn layui-btn-xs layui-btn-danger">删除</button>
                        </td>
                    </tr> 
                `)
            })
            // 循环完毕后在赋值
            $("tbody").empty().html(arr.join(''))
        })
    }

    // 需求2 点击添加 ，显示对话框
    let indexAdd = null
    $("#btnAdd").on('click', function () {
        // 弹出窗口
        indexAdd = layer.open({
            type: 1,
            title: '添加文章分类',
            area: ['500px', '300px'],
            content: `
                <form class="layui-form" id='formAdd'>
                    <div class="layui-form-item">
                    <label class="layui-form-label">分类名称</label>
                    <div class="layui-input-block">
                        <input type="text" name="name" required  lay-verify="required" placeholder="请输入分类名称" autocomplete="off" class="layui-input">
                    </div>
                    </div>
                    <div class="layui-form-item">
                    <label class="layui-form-label">分类别名</label>
                    <div class="layui-input-block">
                        <input type="text" name="alias" required  lay-verify="required" placeholder="请输入分类别名" autocomplete="off" class="layui-input">
                    </div>
                    </div>
                    <div class="layui-form-item">
                    <div class="layui-input-block">
                        <button class="layui-btn" lay-submit lay-filter="formDemo">确认添加</button>
                        <button type="reset" class="layui-btn layui-btn-primary">重置</button>
                    </div>
                    </div>
                </form>
            `
        })
    })

    // 需求3 添加文章分类 事件委托
    $("body").on('submit', "#formAdd", function (e) {
        e.preventDefault()
        axios({
            method: 'POST',
            url: '/my/article/addcates',
            data: $(this).serialize()
        }).then(res => {
            // console.log(res.data);
            // 判断，关闭对话框，成功提示，刷新页面...
            if (res.data.status !== 0) {
                return layer.msg(res.data.message)
            }
            // 成功提示
            layer.msg('恭喜您，添加文章分类成功！')
            // 关闭对话框
            layer.close(indexAdd)
            // 刷新页面
            initArtCateList()
        })
    })



    // 需求4  点击修改 展示对话框
    let indexEdit = null
    let form = layui.form
    $("tbody").on('click', '.btn-edit' ,function () {
        // 弹出窗口
        indexEdit= layer.open({
            type: 1,
            title: '修改文章分类',
            area: ['500px', '300px'],
            content: `
                <form lay-filter='formEdit' class="layui-form" id='formEdit'>
                    <!--方便提交修改设置的隐藏域-->
                    <input type='hidden' name='Id'>
                    <!-- 1 -->
                    <div class="layui-form-item">
                    <label class="layui-form-label">分类名称</label>
                    <div class="layui-input-block">
                        <input type="text" name="name" required  lay-verify="required" placeholder="请输入分类名称" autocomplete="off" class="layui-input">
                    </div>
                    </div>
                    <div class="layui-form-item">
                    <label class="layui-form-label">分类别名</label>
                    <div class="layui-input-block">
                        <input type="text" name="alias" required  lay-verify="required" placeholder="请输入分类别名" autocomplete="off" class="layui-input">
                    </div>
                    </div>
                    <div class="layui-form-item">
                    <div class="layui-input-block">
                        <button class="layui-btn" lay-submit lay-filter="formDemo">确认修改</button>
                        <button type="reset" class="layui-btn layui-btn-primary">重置</button>
                    </div>
                    </div>
                </form>
            `
        })

        // 需求5 展示当前的文章分类信息
        let id = $(this).attr('data-id')
        axios({
            methos: 'GET',
            // 此处的 ：id 为动态参数，可以改变的
            // ：必须省略  ：前面的/必须不能省略
            url: '/my/article/cates/' + id,
        }).then(res => {
            // console.log(res.data);
            // 展示数据
            if (res.data.status !== 0) {
                return layer.msg(res.data.message)
            }
            // 展示
            form.val("formEdit",res.data.data)
        })
    })


     // 需求6 修改文章分类 事件委托   完全复制的添加文章分类，修改内部数据
     $("body").on('submit', "#formEdit", function (e) {
        e.preventDefault()
        axios({
            method: 'POST',
            url: '/my/article/updatecate',
            data: $(this).serialize()
        }).then(res => {
            // console.log(res.data);
            // 判断，关闭对话框，成功提示，刷新页面...
            if (res.data.status !== 0) {
                return layer.msg(res.data.message)
            }
            // 成功提示
            layer.msg('恭喜您，修改文章分类成功！')
            // 关闭对话框
            layer.close(indexEdit)
            // 刷新页面
            initArtCateList()
        })
     })
    
    
    // 需求7 删除功能  -事件委托   可以参考修改
    $('tbody').on('click', '.btn-delete', function () {
        // 获取id 要写到弹窗之外
        let id = $(this).attr('data-id')
        //弹窗
        layer.confirm('确认删除吗？', {icon: 3, title:'提示'}, function(index){
            //发送ajax
            axios({
                method: 'GET',
                // :冒号删除，/斜线保留
                url:'/my/article/deletecate/' + id
            }).then(res => {
                // 判断
                if (res.data.status !== 0) {
                    return layer.msg(res.data.message)
                }
                // 成功给提示
                layer.msg("恭喜您，删除文案分类成功！")
                // 重新渲染
                initArtCateList()
            })
            // 在axios处理函数外面关闭对话框
            layer.close(index);
        });
    })
    
    
    

    
})

